# _*_ coding:utf-8 _*_
# 开发团队: Mavericks
# 开发人员：Maverick·Ming
# 开发IDE： PyCharm
#   项目名：HelloWorld
#   文件名：4.1 list简介.py
# 开发时间：2021/3/18 20:01

# 创建列表，类似java数组，用[]创建
my_list = []  # 创建了一个空列表
print(my_list, type(my_list), id(my_list))  # 查看空列表的内容、类型、id
you_list = []  # 创建另一个空列表
print(you_list, type(you_list), id(you_list))  # 查看空列表的内容、类型、id
print("看结果可以知道，list是随机分配的，两个空list的id是不一致的，不是同一个对象")

# 列表中存储的数据，python中称为元素
# 一个列表中可以存储多个元素，也可以在创建列表时，指定初始化元素
# 用”，“隔开多个元素
my_list = [10, 100, 1000]
print(my_list, type(my_list), id(my_list))
you_list = my_list
print(you_list, type(you_list), id(you_list))
print("这种情况下，两个列表存储的是同一个对象")

# 一维列表
my_list = [10, 100, 1000]
print(my_list, type(my_list), id(my_list))
you_list = [10, 100, 1000]
print(you_list, type(you_list), id(you_list))
print("这种情况下，两个列表存储的不是同一个对象")

# 与数组不同，列表中可以存储任意的对象,而数组中存的是相同类型的对象
# 列表中的对象，会按照插入顺序，存储到列表中，先插先存
my_list = [10, 'hello', True, None]  # 一般很少这样存储list
print(my_list)

# 可以通过索引获取列表中元素，类似数组的下标
# python中，列表的索引，是从0开始的整数
my_list = [10, 20, 30, 40, 50]
print(my_list[0], my_list[4])
# 使用索引不能超过列表长度n-1,否则:
# print(my_list[5])  # IndexError: list index out of range

# 列表的索引可以是负数
# 如果是负数，则从后向前获取元素，-1倒数第一个
print("倒数第一个元素", my_list[-1])

# 如果不清楚列表长度，可以用len()函数获取列表的长度，len返回= 最大索引+1 = 4 + 1
print(len(my_list))


# 二维列表（即嵌套列表）
list1 = ['11', '12', '13']
list2 = ['21', '22', '23']
list3 = ['31', '32', '33']
my_list = [list1, list2, list3]
print(my_list)




